
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker

#创建链接                数据库类型+要使用的底层sql实现://账号:密码@ip地址/数据库名称                            echo=True会把创建时候的信息打印下来
engine = create_engine('mysql+pymysql://root:qQ1002324991.@1.117.160.157/learn_db', encoding='utf-8')

Base = declarative_base() #生成orm基类

class User_info(Base):
    __tablename__ = 'user_info'  #表明
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    password = Column(String(64))

    def __repr__(self):
        return 'id:%s name:%s password:%s' % (self.id, self.name, self.password)

Base.metadata.create_all(engine) #创建表结构

Session_class = sessionmaker(engine)    #这两条死记住，先创建与数据库的会话session_class这是个类
session = Session_class()   #实例化这个类

#新增数据
# user_obj = User_info(name='刘奇', password='123456')  #要创建的数据对象
# user_obj2 = User_info(name='haha', password='126')
# print(user_obj.name, user_obj.id)
# session.add(user_obj)   #把要创建的数据对象添加到session里
# session.add(user_obj2)
# session.commit()  #提交创建

# 查询数据
data = session.query(User_info).filter_by().first()
print(data)
# 修改数据,查出来，直接修改提交
data.name = '石星'
data.password = '789465'

session.commit()  #提交创建